Many software applications use databases to store data. The data stored includes application data and configuration data. In addition, some software applications also keep repository data in the database, for instance program code, compiled execution code or meta-data that describes the database layout. The SAP NetWeaver System® and the applications based on it are such an arrangement of various software applications.
Occasionally, a database system needs to be upgraded to apply enhancements, patches and other adjustments. In many cases, these updates imply structural changes of database objects or modifications of the database content. These adjustments generally require a downtime for the complete system of database applications. During the outage no productive operation is possible.
FIG. 1 depicts a database application system 10 before an upgrade outage begins. Several application servers 101, 102 and 103 are connected to a database 200. It should be readily apparent to those of skill in the art that the database application system 10 can include any number of application servers. In the example shown in FIG. 1, application server 101 is not accessible to an end-user; it is accessed by a maintenance tool 100. Application servers 102 and 103 serve the work load that is directed to them by a user logon management 120. In some implementations, application servers 102 and 103 can also be connected to an application server which hosts central services 110. For example, within an SAP NetWeaver® system, these central services 110 consists of an enqueue server that handles the locking of SAP business objects and the message server. All application servers 101, 102 and 103 are connected to an original schema 201 within database 200.
Database 200 contains a variety of tables:                Repository tables 301 contain data that is needed to run the database applications. For example, within an SAP system, repository tables 301 contain, among other data, application program source code, execution code of application programs, and the meta-definitions of application objects and database objects.        Customizing tables (fix) 302 are tables that contain customizing data and are not changed during the upgrade outage.        Customizing tables 304 are all other customizing tables which are to be changed during the upgrade outage.        Application tables (fix) 302 are tables which contain application data and are not changed during the database outage.        Application tables 305 are all other tables which contain application data and are to be changed during the upgrade outage.        
It is possible to add additional application servers to the database application system 10 to manage a higher workload. Conventional database upgrade procedures require an upgrade outage, and a stop of the productive operation. These upgrade procedures work as follows:
As shown in FIG. 2A, all end-users are stopped from connecting to the application servers 102 and 103, and the application servers 102 and 103 are shut down. Productive operations on the system stop. Then, as shown in FIG. 2B, the maintenance tool 100 performs, among other activities, an adjustment of customizing and application tables 302 and 303. The structure and content changes result in modified tables labeled repository tables (mod) 341, customizing tables (mod) 344 and application tables (mod) 345. Finally, as shown in FIG. 2C, application servers 102 and 103 are restarted. Productive operation is re-enabled. User logon management 120 starts to allow end-users to connect to application server 102 and 103 again and continue with productive operation.
For a majority of application users, the outage is acceptable if it does not happen during business hours, i.e. takes place on the weekend, for instance. However, in business systems there are usually also a limited number of applications that need to be continuously available. Some examples of these applications include: online banking web interfaces, and banking account services that are needed by automated teller machines (ATMs).